// 对象类型中的泛型
interface IRes<TData = unknown> {
  code: number;
  error?: string;
  data: TData;
}

interface IUserProfileRes {
  name: string;
  homepage: string;
  avatar: string;
}

// 泛型嵌套 promise<泛型T<泛型T>>
// 函数 promise 中 IRes泛型中的 泛型 IUserProfileRes
function fetchUserProfile(): Promise<IRes<IUserProfileRes>> {}

type StatusSucceed = boolean;
function handleOperation(): Promise<IRes<StatusSucceed>> {}

// 泛型嵌套泛型
// <T<T1<T2<T3>>>>

// 函数中的泛型
// any大法好 直接pass
function handle(input: any): any {}

//
function handle7(input: string | number | {}): string | number | {} {}

const shouldBeString = handle("azyyzaz");
const shouldBeNumber = handle(599);
const shouldBeObject = handle({ name3: "azyyzaz" });

// 泛型的用处
function handle5<T>(input: T): T {}


